ENTER BASIC To program the computer, you must use a language that the computer understands. Most computers understand a language called BASIC, which is a small part of English. BASIC was invented by two Dartmouth College professors (John Kemeny and Tom Kurtz) in 1964. Later they improved it. Today, BASIC consists of words such as PRINT, GO, TO, INPUT, IF, and THEN. Here's how to program the computer by using those BASIC words. Microsoft BASIC Different computers speak different dialects of BASIC. The most popular dialect was invented in 1975 by a 19-year-old kid, Bill Gates. Since he developed software for microcomputers, he called himself Microsoft and called his BASIC dialect Microsoft BASIC. Since Microsoft BASIC is so wonderful, all the popular computer companies paid him to make their computers understand Microsoft BASIC. That's right: IBM, Apple, Commodore, Tandy, Atari, Texas Instruments, and hundreds of other computer companies all had to pay off Bill. Microsoft BASIC has become so popular that Bill had to hire hundreds of employees to help him fill all the orders. Microsoft Incorporated has become a multi-billion-dollar company, and Bill has become a famous billionaire, the wealthiest person in America ___ he's still just in his 30's! Over the years, Bill gradually improved Microsoft BASIC. Some computers use old versions of Microsoft BASIC; other computers use his latest improvements. What's in this chapter? This chapter on BASIC explains Modern Microsoft BASIC, whose popular commands and functions are explained on the following pages: Command What the computer will do Page Similar to BEEP hum for a quarter of a second 373 SOUND, PLAY CIRCLE (100,100),50 draw a circle at (100,100) with radius 50 372 LINE, PAINT CLOSE put finishing touches on the data files 415 OPEN CLS clear the screen, so it becomes blank 333 NEW, LOCATE DATA MEAT,POTATOES use this list of data: MEAT, POTATOES 350 READ, RESTORE DATE$="01-24-1996" set the clock/calendar to 01-24-1996 395 TIME$= DEFINT A-Z make all the numeric variables be integers 397 X= DELETE 30-80 delete lines 30-80 from the program 332 LIST, EDIT DIM X$(7) make X$ be a list of 7 strings 379 X= EDIT 30 edit line 30 of the program 332 LIST, DELETE END skip the rest of the program 336 STOP FIELD 1, 30 AS X$ let file#1's record be 30 bytes and called X$ 417 GET, PUT FILES print the names of all the disk files 336 SAVE, LOAD FOR X = 1 TO 100 repeat the lines underneath, 100 times 355 NEXT GET 1,7 from file#1, get the 7th record 417 FIELD, PUT GO TO 10 skip to line 10 of the program 334 GOSUB GOSUB 1000 do the subroutine that begins at line 1000 376 RETURN IF A$="FINE" THEN PRINT if A$ is ``FINE'', print a blank line 345 ON N GO TO INPUT "WHAT NAME";N$ ask ``WHAT NAME?'' and get answer N$ 341 LINE INPUT INPUT#1, A$ input from file#1 the value of A$ 415 INPUT KILL "JOE" erase the file JOE from the disk 337 FILES, NEW LINE (0,0)-(100,100) draw a line from (0,0) to (100,100) 372 PLOT, CIRCLE LINE INPUT "TYPE IT";N$ say ``TYPE IT'' and grab whole line as input 407 INPUT LIST print a list of all the program's lines 331 LLIST, EDIT LLIST copy all the program's lines onto paper 333 LIST, PRINT#1 LOAD "JOE" copy the program JOE from disk to RAM 337 SAVE, RUN LOCATE 3,7 move to the 3rd line of screen, 7th position 371 PRINT, CLS LPRINT "I LOVE YOU" print ``I LOVE YOU'' on paper 333 PRINT, PRINT#1 LSET X$="I LOVE LUCY" make field variable X$ be ``I LOVE LUCY'' 417 FIELD, PUT MID$(A$,2)="OWL" change the middle of A$ to ``OWL'' 394 X= NEW start a new program 328 RUN, DELETE NEXT X repeat the lines above, for the next X 355 FOR ON ERROR GO TO 1000 if the lines below cause errors, go to 1000 414 RESUME ON N GO TO 80,100,20,350 go to 80, 100, 20, or 350, depending on N 413 ON N GOSUB ON N GOSUB 80,100,20,350 gosub 80, 100, 20, or 350, depending on N 413 ON N GO TO OPEN "S" FOR OUTPUT AS 1 create a data file called ``S''; output to it 415 CLOSE PAINT (100,101) fill in the shape that surrounds (100,101) 372 LINE, CIRCLE PLAY "CDG#B-A" play this music: C, D, G sharp, B flat, A 374 SOUND, BEEP PLOT (100,100) put a dot at the point (100,100) 372 LINE, CIRCLE POKE 7512,14 into memory cell #7512, put the number 14 414 X= PRINT 5+2 print the answer to 5+2 326 ? PRINT USING "##.#"; 30/7 print 30/7, rounded to one decimal place 374 PRINT PRINT#1, "EAT" print onto file#1 the word ``EAT'' 415 PRINT, LPRINT PUT 1,50 in file#1, change the 50th record 417 FIELD, GET RANDOMIZE make random numbers be unpredictable 388 X= READ A$ get a string from the DATA and call it A$ 350 DATA, RESTORE RENAME "JOE" TO "FRED" find the file JOE and rename it ``FRED'' 337 FILES, SAVE RENUM renumber all the program's lines, by 10's 367 LIST, EDIT RESTORE go back to the beginning of the data 351 READ, DATA RESUME 30 end the error trap, by going to line 30 414 ON ERROR GO TO RETURN return to the main routine (from subroutine) 376 GOSUB RUN obey all the program's instructions now 328 LIST, LOAD SAVE "JOE" copy the program to disk and call it ``JOE'' 336 FILES, LOAD SOUND 440,18.2 make a sound of 440 hertz, for 1 second 373 PLAY, BEEP STOP stop the program and print a message 336 END SWAP A,B make A and B swap values with each other 409 X= TIME$="13:45:07" set the clock to 7 seconds after 13:45 395 DATE$= X=47 make X stand for the number 47 337 INPUT, POKE ? 5+2 print the answer to 5+2 326 PRINT 'THIS PROGRAM IS DUMB note that this program is dumb 367 PRINT Function Meaning Value PageSimilar to ABS(-7) absolute value of -77 386INT, SGN ASC("A") ASCII code number for A65392CHR$ ATN(1)/D arctangent of 1, in degrees45396TAN CHR$(65) 65th ASCII character``A''392ASC COS(60*D) cosine of 60 degrees.5 396SIN, TAN CVD("RAT NAN~")convert to double-precision.2014209944946413417MKD $ CVI("ME") convert to integer17741 417MKI$ CVS("NAN~") convert to single-precision.201421417MKS$ DATE$ today's date varies 395TIME$ EOF(1) test whether at end of file#1varies416LOF EXP(1) e raised to the first power2.718282384LOG, SQR INPUT$(4) 4 characters that are inputvaries407STICK INSTR("NEEDED","ED")position of ED in NEEDED3395other INSTR INSTR(4,"NEEDED","ED")search from the 4th character5395other INSTR INT(17.9) turn into an integer17 386ABS, SGN LEFT$("SMART",2)left 2 characters of SMART``SM''394RIGHT$, MID$ LEN("SMART") length of SMART 5 394RIGHT$, MID$ LOC(1) location of record in file#1varies417LOF LOF(1) length of file#1, in bytesvaries416EOF LOG(2.718282) logarithm base e1 385EXP MID$("SMART",2)begin at the 2nd character``MART''394other MID$ MID$("SMART",2,3)begin at the 2nd, take 3``MAR''394other MID$ MKD$(.2014209944946413)make the double a string``RAT NAN~''417CVD MKI$(17741) make the integer a string``ME''417CVI MKS$(.201421) make the single a string``NAN~''417CVS MOUSE(1) how far mouse to rightvaries408STICK PEEK(7512) peek at memory cell #7512varies414RND RIGHT$("SMART",2)rightmost 2 characters``RT''394MID$ RND random decimal varies 391other RND RND(5) random integer from 1 to 5varies388other RND SGN(-546) sign of -546 -1 386ABS, INT SIN(30*D) sine of 30 degrees.5 396COS, TAN SQR(9) square root of 93 384EXP, LOG STICK(0) how far joystick to rightvaries408MOUSE STR$(81.4) turn 81.4 into a string`` 81.4''395VAL STRING$(5,"B")a string of 5 B's``BBBBB''395other STRING$ STRING$(5,66) 66th ASCII character, 5 times``BBBBB''395other STRING$ TAN(45*D) tangent of 45 degrees1 396ATN TIME$ current time of dayvaries395TIMER, DATE$ TIMER # of seconds since midnightvaries395TIME$, DATE$ VAL("72.6") remove the quotation marks72.6395STR$ All popular microcomputers use either Modern Microsoft BASIC or a slight variation of it. At the end of this BASIC chapter is an amazing appendix called ``Versions of BASIC''. It explains the versions of BASIC used by IBM, Commodore, Apple, Tandy, and dozens of other manufacturers, including yours. It reveals the subtle ways that your computer's BASIC differs from Modern Microsoft BASIC. If you don't have a computer yet, ignore the appendix: read just the main text, which explains Modern Microsoft BASIC. If you do have access to a computer, read the main text (which explains Modern Microsoft BASIC); but before trying the examples on your computer, peek at the appendix to see how your computer's BASIC differs from Modern Microsoft BASIC. To reach that appendix easily, put a bookmark now at the following page: Kind of computer you have Where to put the bookmark IBM PC or any computer that uses IBM PC softwarepage 422 Apple Mac page 427 Apple 2, 2+, 2e, 2c, 2c+, or 2GSpage 431 Commodore page 438 Tandy's Radio Shack TRS-80 model 4page 443 Tandy's Radio Shack TRS-80 Color Computerpage 445 other computer page 449 If you ever get confused about how to program your computer, phone me at 617-666-2666. I'll help you, free! The keyboard Each year, manufacturers improve their keyboards. I expect that someday most manufacturers will use the Walter keyboard, which I invented several years ago. It looks like this: ÚÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÄÄ ÄÂÄÄÄÄÄÄ¿ ³Clear ³ClrDoc ³ ! ³ @ ³ # ³ $ ³ % ³ ^ ³ & ³ * ³ ( ³ ) ³ _ ³BackWd³DeleWd³ ³Help ³Escape ³ 1 ³ 2 ³ 3 ³ 4 ³ 5 ³ 6 ³ 7 ³ 8 ³ 9 ³ 0 ³ - ³Backsp³Delete³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÄÄ ÄÁÂÄÄÄÄÄ´ ³ \ ³ ³ ³ Q ³ W ³ E ³ R ³ T ³ Y ³ U ³ I ³ O ³ P ³ + ³ { ³ } ³ ³LfTab ³ Tab ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ = ³ [ ³ ] ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÁÂÄÄÁÂÄÄÁÂÄÄÁÂÄÄÁÂÄÄÁÂÄÄÁÂÄÄÁÂÄÄÁÂÄÄÁÂÄÄÁÂÄÄÁÂÄÄ ÄÄÁÄÄÄÄÄ´ ³ ` ³ ~ ³ A ³ S ³ D ³ F ³ G ³ H ³ J ³ K ³ L ³ : ³ " ³ ³ ³Functn³ Control ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ; ³ ' ³ Enter ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÂÄÄÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÂÄÁÄÄ ÄÂÄÄÄÄÄÄ´ ³Boot ³PrtDoc³ ³ Z ³ X ³ C ³ V ³ B ³ N ³ M ³ < ³ > ³ ? ³ ³ Top ³ ³Break ³Print ³Shift³ ³ ³ ³ ³ ³ ³ ³ , ³ . ³ / ³Shift³  ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÁÂÄÄÁÄÄÄÅÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÅÄÄÄÁÄÂÄÁÄÄÄÅÄÄÄÄ ÄÅÄÄÄÄÄÄ´ ³  ³  ³  ³  ³ ³Copy ³LfMar³RtMar³Bottom³ ³Pause ³ Echo ³ Caps ³Insert³ Space ³Move ³  ³ þ ³  ³ ÀÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄ ÄÁÄÄÄÄÄÄÙ Now I'm going to explain how to use the most important keys. But don't touch the keys on your keyboard until you've read the next section (which is called ``Get Started'') and the ``Versions of BASIC'' appendix (which reveals how your keyboard differs from the Walter keyboard). Numbers Look at the Walter keyboard. The top row of keys contains the numbers. Don't confuse 1 with I; the number 1 is in the top row. Don't confuse zero with the letter O; the number zero is in the top row. (On older keyboards, the zero has a slash through it, like this: O. That's called a slashed zero or a Swedish zero.) The SHIFT key One of the keys looks like this: ÚÄÄÄ¿ ³ $ ³ ³ 4 ³ ÀÄÄÄÙ If you press that $4 key, you'll type a 4. Here's how to type a dollar sign instead: hold down the SHIFT key; and while you keep holding down the SHIFT key, tap the $4 key. Here's the general rule: if a key has two symbols on it, and you want to type the top symbol, hold down the SHIFT key. About the SHIFT key, beginners often make two boo-boos. The first boo-boo is forgetting to press it. For example, suppose you want to type a dollar sign, and you press the $4 key but forget to hold down the SHIFT key; then you'll be typing a 4 instead. The other boo-boo is trying to hit the SHIFT key and another key at exactly the same time. You can't do it; it's impossible; you'll wind up hitting one key before the other. The trick is to hold down the SHIFT key first; and while you keep holding it down, give the other key a light tap. Beginners often make those boo-boos. When they realize their mistakes, they say ``Oh, shit!'' That's why programmers call it the ``shit'' key. The keyboard contains two SHIFT keys. They serve the same purpose as each other. Use whichever SHIFT key makes your fingers feel more comfortable. The CAPS key If you tap the CAPS key, the computer will automatically capitalize all the letters you type. For example, if you tap the CAPS key and then press the M and E keys, the screen will show a capitalized ME. The computer will continue to capitalize all the letters, until you tell the computer to stop capitalizing. To make the computer stop capitalizing, just tap the CAPS key again. After you've told the computer to stop capitalizing, pressing the M and E keys make the screen show a small me ___ unless you simultaneously hold down the SHIFT key. The BACKSPACE key The BACKSPACE key says BACKSP on it. If you make a typing mistake, erase the mistake by pressing the BACKSPACE key, which makes the computer erase the last character you typed. To erase two characters, press the BACKSPACE key twice. (On older keyboards, the BACKSPACE key has a left-arrow on it, like this: . To find out about your keyboard's BACKSPACE key, check the ``Versions of BASIC'' appendix.) The ENTER key The most important key is the ENTER key. When using BASIC, press the ENTER key at the end of every line you type. The ENTER key takes the line you've typed and enters that line into the computer, so that the computer reads the line. The computer ignores what you type, until you press the ENTER key. If you forget to press the ENTER key at the end of the line, the computer doesn't read what you typed, and so the computer doesn't do anything, and you wonder why the computer seems broken. (On older keyboards, the ENTER key is called the RETURN key.) Get started Make sure the various parts of your computer system are correctly attached to each other. Then turn on the power. If your computer is modern (and uses Microsoft BASIC), it will say: OK (Older computers don't say OK. Instead, they say READY or print a bracket. For further details about your computer, read the ``Versions of BASIC'' appendix.) Be bold In science fiction, computers blow up; in real life, they never do. No matter what keys you press, no matter what commands you type, you won't hurt the computer. The computer is invincible! So go ahead and experiment. If it doesn't like what you type, it will gripe at you, but so what? Troubles When you try using the computer, you'll have trouble ___ because you're making a mistake, or the computer is broken, or the computer is weird and works differently from the majority of computers discussed in this book. (Each computer has its own ``personality'', its own quirks.) Whenever you have trouble, laugh about it, and say, ``Oh, boy! Here we go again!'' (If you're Jewish, you can say all that more briefly, in one word: ``Oy!'') Then get some help. Get help For further help with your computer, read the ``Versions of BASIC'' appendix. For even more help, read the beginner's manual that came with your computer, or ask the genie who gave you the computer (your salesperson or parent or boss or teacher or friend). If you're sitting near computers in your office, school, or home, and other people are nearby, ask them for help. They'll gladly answer your questions because they like to show off and because the way they got to know the answers was by asking. Computer folks like to explain computers, just as priests like to explain religion. Remember: you're joining a cult! Even if you don't truly believe in ``the power and glory of computers'', at least you'll have a few moments of weird fun. So play along with the weird computer people, boost their egos, and they'll help you get through your initiation rite. Above all, assert yourself, and ask questions. ``Shy guys finish last.'' When dealing with the computer and the people who surround it, be friendly but assertive. To make sure you get your money's worth from a computer course, ask your teachers and coworkers questions, questions, questions! If you're using a computer that you won, get help from the person who gave it to you. Your town probably has a computer club. (To find out, ask the local schools and computer stores.) Join the club, and tell the members you'd like help with your computer. Probably some computer hobbyist will help you. And remember ___ you can call me anytime at 617-666-2666, and I'll help you, free! MATH Let's try to make the computer print the answer to 5+2. (And let's hope the computer says 7.) Type this: PRINT 5+2 Type that carefully! Here's how. . . . First, type the word PRINT, by pressing the P key, then the R key, then I, then N, then T. (Since most computers don't care about capitalization, don't bother pressing the SHIFT key.) After typing the word PRINT, type a blank space (by pressing the SPACE bar). Then press the 5 key. Then type a plus sign, but be careful: on most keyboards, the plus sign is on the top part of a key; so to type the plus sign, you must hold down the SHIFT key. Then type the 2. When you've finished typing that line, press the ENTER key, which makes the computer read what you've typed. Then the computer will print the answer: 7 If your computer prints a wrong answer instead or says ERROR, you made a typing mistake. Find your mistake (by looking at the screen), and then try again to type: PRINT 5+2 Underneath the answer, the computer will print the word OK (or some old-fashioned word, such as READY). That means it's okay for you to feed the computer the next problem; the computer's ready for another problem. If you want to subtract 3 from 7, type this: PRINT 7-3 (To type the minus sign, you do not press the SHIFT key.) When you've finished typing that line, remember to press the ENTER key, which makes the computer read that line and print the answer. The computer will print: 4 You can use decimal points and negative numbers. For example, if you type this ___ PRINT -26.3+1 the computer will print: -25.3 Multiplication To multiply, use an asterisk. To multiply 2 by 6, type this: PRINT 2*6 The computer will print: 12 Division To divide, use a slash. So to divide 8 by 4, type this: PRINT 8/4 The computer will print: 2 Question mark If you're too lazy to type the word PRINT, type a question mark instead. For example, instead of typing ___ PRINT 5+2 you can type: ? 5+2 The question mark is an abbreviation. It stands for the word PRINT. If you wish, think of the question mark as standing for the word ``What's''. For example, if you want to ask the computer ``What's 5+2'', type this: ? 5+2 Huge & tiny numbers Do not put commas in large numbers. To write four million, do not write 4,000,000; instead, write 4000000. If the computer's answer is huge (more than a million) or tiny (less than .01), the computer might print the answer strangely. Here's how. . . . E notation The computer might print the letter E, which means ``move the decimal point''. For example, suppose the computer says the answer to a problem is: 8.51673E+12 The E means, ``move the decimal point''. The plus sign means, ``towards the right''. Altogether, the E+12 means, ``move the decimal point towards the right, 12 places.'' So look at 8.51673, and move the decimal point towards the right, 12 places; you get 8516730000000. So when the computer says the answer is 8.51673E+12, the computer really means the answer is 8516730000000, approximately. The exact answer might be 8516730000000.2 or 8516730000000.79 or some similar number, but the computer prints just an approximation. Suppose your computer says the answer to a problem is: 9.26E-04 After the E, the minus sign means, ``towards the left''. So look at 9.26, and move the decimal point towards the left, 4 places. You get: .000926 So when the computer says the answer is 9.26E-04, the computer really means the answer is: .000926 You'll rarely see E notation: the computer uses it only if an answer is huge (many millions) or tiny (tinier than .01). But when the computer does use E notation, remember to move the decimal point! The highest number The highest number the computer can handle is about 1E38, which is 1 followed by 38 zeros, like this: 100000000000000000000000000000000000000 If you try to go much higher, the computer will say: OVERFLOW ERROR The tiniest decimal The tiniest decimal the computer can handle is about 1E-38, which is a decimal point followed by 38 digits, 37 of which are zeros, like this: .00000000000000000000000000000000000001 If you try to go tinier, the computer will have an ``underflow error'' and will ``fake'' the answer: it will give zero instead of the correct answer. Order of operations What does ``2 plus 3 times 4'' mean? The answer depends on who you ask. To a clerk, it means ``start with 2 plus 3, then multiply by 4''; that makes 5 times 4, which is 20. But to a scientist, ``2 plus 3 times 4'' means something different: it means ``2 plus three fours'', which is 2+4+4+4, which is 14. Since computers were invented by scientists, computers think like scientists. If you type ___ PRINT 2+3*4 the computer will think you mean ``2 plus three fours'', so it will do 2+4+4+4 and print this answer: 14 The computer will not print the clerk's answer, which is 20. So if you're a clerk, tough luck! Scientists and computers follow this rule: do multiplication and division before addition and subtraction. So if you type ___ PRINT 2+3*4 the computer begins by hunting for multiplication and division. When it finds the multiplication sign between the 3 and the 4, it multiplies 3 by 4 and gets 12, like this: PRINT 2+3*4 12 So the problem becomes 2+12, which is 14, which the computer prints. For another example, suppose you type: PRINT 10-2*3+72/9*5 The computer begins by doing all the multiplications and divisions. So it does 2*3 (which is 6) and does 72/9*5 (which is 8*5, which is 40), like this: PRINT 10-2*3+72/9*5 6 40 So the problem becomes 10-6+40, which is 44, which is the answer the computer prints. Parentheses You can use parentheses the same way as in algebra. For example, if you type ___ PRINT 5-(1+1) the computer will compute 5-2 and print: 3 You can put parentheses inside parentheses. If you type ___ PRINT 10-(5-(1+1)) the computer will compute 10-(5-2), which is 10-3, and will print: 7 STRINGS Let's make the computer fall in love. Let's make it say, ``I love you''. Type this: PRINT "I LOVE YOU" Type it carefully. Begin by typing the word PRINT. (If you're lazy, type a question mark instead.) Then press the SPACE bar. Then type a quotation mark, but be careful: on most keyboards, the quotation mark is on the top part of a key; so to type the quotation mark, you must hold down the SHIFT key. Then type I LOVE YOU. Then type another quotation mark. At the end of the line, press the ENTER key. The computer will obey your command; it will print: I LOVE YOU You can change the computer's personality. For example, if you give this command ___ PRINT "I HATE YOU" the computer will reply: I HATE YOU Notice that to make the computer print a message, you must put the message between quotation marks. The quotation marks make the computer copy the message without worrying about what the message means. For example, if you misspell ``I love you'', and type ___ PRINT "AIEEE LUF YA" the computer will still copy the message (without worrying about what it means); the computer will print: AIEEE LUF YA Jargon The word ``JOY'' consists of 3 characters: J and O and Y. Programmers say that the word ``JOY'' is a string of 3 characters. A string is any collection of characters, such as ``JOY'' or ``I LOVE YOU'' or ``AIEEE LUF YA'' or ``76 TROMBONES'' or ``GO AWAY!!!'' or ``XYPW EXR///746''. The computer will print whatever string you wish, but remember to put the string in quotation marks. Strings versus numbers The computer can handle two types of expressions: strings and numbers. Put strings (such as ``JOY'' and ``I LOVE YOU'') in quotation marks. Numbers (such as 2+2) do not go in quotation marks. Accidents Suppose you accidentally put the number 2+2 in quotation marks, like this: PRINT "2+2" The quotation marks make the computer think ``2+2'' is a string instead of a number. Since the computer thinks ``2+2'' is a string, it copies the string without analyzing what it means; the computer will print: 2+2 It will not print 4. Suppose you accidentally forget to put the string ``I LOVE YOU'' in quotation marks, and type this instead: PRINT I LOVE YOU Since you forgot the quotation marks, the computer thinks the I LOVE YOU is a weird number instead of a string; but the computer doesn't know what kind of weird number it is since the computer doesn't know the meaning of love. Whenever the computer is confused, it either gripes at you or prints a zero. In this particular example, it will print a zero, like this: 0 So if you incorrectly tell the computer to say it loves you, it will say zero. Long commands on small screens Try typing this command: PRINT "I LIKE TO EAT AND DRINK AND GAZE INTO YOUR EYES AS WE DREAM ABOUT LOVE" That command's long. It won't fit on a single line of your screen if your screen's small; but go ahead and type the command anyway. When you reach the screen's right edge, the computer automatically moves you to the line below so you can continue typing. Do not press the ENTER key, until you've typed the entire command. After typing the entire command, press the ENTER key. The computer will print: I LIKE TO EAT AND DRINK AND GAZE INTO YOUR EYES AS WE DREAM ABOUT LOVE EASY PROGRAMS Now that you've had fun experimenting with the word PRINT, you're ready for the big-time; you're ready to program the computer! Three steps Programming the computer consists of three steps. Step 1: type the word NEW That tells the computer you're going to invent a new program. After you type the word NEW, press the ENTER key. The computer will say OK. (If your computer is old-fashioned, it will say some other word instead, such as READY.) Step 2: type your program A program is a list of numbered commands. For example, suppose you want the computer to say: I LOVE YOU YOU TURNED ME ON LET'S GET MARRIED Type this program: 1 PRINT "I LOVE YOU" 2 PRINT "YOU TURNED ME ON" 3 PRINT "LET'S GET MARRIED" Every line of the program must be numbered: you must type those numbers. Every line of the program must say PRINT; you must type the word PRINT. (Or, if you're too lazy to type the word PRINT, you can type a question mark instead.) Every line of that program must include quotation marks; you must type the quotation marks. At the end of each line, press the ENTER key. Step 3: type the word RUN That tells the computer to look at the program you've written, and run through it. After you've typed the word RUN, press the ENTER key. The computer will print everything you requested; it will print: I LOVE YOU YOU TURNED ME ON LET'S GET MARRIED Then the computer will say OK. Review Let's review that procedure. You type: NEW 1 PRINT "I LOVE YOU" 2 PRINT "YOU TURNED ME ON" 3 PRINT "LET'S GET MARRIED" RUN The numbered instructions (1, 2, and 3) are called the program. Above the program, you type the word NEW; below the program, you type the word RUN. The words NEW and RUN are not numbered. After you've done all that correctly (and pressed the ENTER key after the word RUN), the computer will obey the program and print what you requested. Each line of the program must be numbered. Putting a number at the beginning of a line makes the line become part of your program; the computer won't obey the line until the program is RUN. Here's the rule: a number in front of the line tells the computer to wait until you type the word RUN. Another example For another example, try typing this: NEW 1 PRINT "I LONG" 2 PRINT 2+2 3 PRINT "U" RUN At the end of each line, remember to press the ENTER key. When you press the ENTER key after the word RUN, the computer obeys the program. The first line makes the computer print ``I LONG''. The second line makes the computer add 2 and 2, so the computer prints the number 4. The third line makes the computer print the letter U. Altogether, the computer prints: I LONG 4 U Yes, the computer says it longs for you! In that example, the computer indents the 4, so that the 4 has a blank space before it. That's because of this rule: the computer automatically puts a blank space before every positive number. After the computer's finished running that program, if you type the word RUN again the computer will print again: I LONG 4 U A program's a list of numbered instructions. If the program you typed isn't on the screen anymore, and you'd like to see that list of numbered instructions again, type the word LIST. The computer will say: 1 PRINT "I LONG" 2 PRINT 2+2 3 PRINT "U" Poem Suppose you want to make multiple copies of this poem: SPRING HAS SPRUNG. THE GRASS HAS RIZ. I WONDER WHERE THE FLOWERS IS. First, turn the poem into a program, by typing: NEW 1 PRINT "SPRING HAS SPRUNG." 2 PRINT "THE GRASS HAS RIZ." 3 PRINT "I WONDER WHERE" 4 PRINT "THE FLOWERS IS." Then type the word RUN (and press the ENTER key). The computer will print the poem. If you type the word RUN again, the computer will print the poem again. Each time you type the word RUN, the computer will print the poem. To print many copies of the poem, just type the word RUN many times, like this. . . . You type: RUN Computer types: SPRING HAS SPRUNG. THE GRASS HAS RIZ. I WONDER WHERE THE FLOWERS IS. OK You type: RUN Computer types: SPRING HAS SPRUNG. THE GRASS HAS RIZ. I WONDER WHERE THE FLOWERS IS. OK You type: RUN Computer types: SPRING HAS SPRUNG. etc. If you hate poetry and all other forms of art, cheer up: by using the same technique, you can make the computer type many copies of your favorite flubbed-up business letter or your favorite obnoxious ad. Colons You can put several statements on the same line, like this: 1 PRINT "I THINK": PRINT "OF FLEAS": PRINT "AND SNEEZE" The computer will PRINT ``I THINK''. Then the computer will PRINT ``OF FLEAS''. Then the computer will PRINT ``AND SNEEZE''. Altogether, the computer will print: I THINK OF FLEAS AND SNEEZE Become an expert To invent your own program and make the computer handle it, go through the three steps again: type the word NEW, then type your program, then type the word RUN. Remember to press the ENTER key at the end of each line, and remember that the commands NEW and RUN are not numbered. Those three steps (NEW then program then RUN) are all you have to know about programming! C'mon, write some programs! It's easy! Try it. You'll have lots of fun! A person who writes a program is called a programmer. Congratulations: you're a programmer! Write several programs like the ones I've shown you already. Then you can put on your r‚sum‚ that you have ``a wide variety of programming experience'', and you can talk your way into a programming job! The rest of this chapter explains how to become a good programmer. Programming the computer is like driving a car: the only way to become an expert is to put your hands on that mean machine and try it yourself. If you have access to a computer, put this book next to the computer's keyboard. At the end of each paragraph, type the examples and look, look, see the computer run. Invent your own variations: try typing different numbers and strings. Invent your own programs: make the computer print your name or a poem; make it solve problems from your other courses and the rest of your life. The computer's a fantastic toy. Play with it. If you're a student, don't wait for your instructor to give lectures and assign homework. Act now. You'll learn more from handling the computer than from the lectures or readings. Experience counts. Let me tell you the story of Charlie. . . . At Wesleyan University's computer center, one of the directors was having trouble making the computer print the university's payroll. He asked me for help, but I said I didn't know either. I saw a little kid sitting at one of the keyboards. ``Hey, Charlie,'' I called to him, ``we're having trouble getting the payroll out.'' Little Charlie came over and typed some stuff on our keyboard. ``The payroll will be out in a minute,'' he said gleefully. Charlie was just in seventh grade. He'd never taken a computer course; his school didn't offer one. But by spending the whole summer just ``hanging around'' our computer, he knew it better than we. Be like Charlie. Hang around your computer. Communicate with it every day. At first, that will be even harder than talking with a cat or a tree, because the computer belongs to a different species, a different kingdom; but keep trying. Get to know it as well as you know your best friend. When dealing with the computer and the people who surround it, be friendly but also assertive. To make sure you get your money's worth from a computer course, ask your teacher, classmates, lab assistants, and other programmers questions, questions, questions! If you're taking a French course, you might find French difficult; and if you're taking a computer course, you might find computers difficult also. But even a stupid three-year-old French kid can speak French, and even kindergarten kids can program the computer. They've got just one advantage over you: practice! CORRECTING ERRORS If you make an error, you can correct it in three ways. . . . If you notice the error before you press the ENTER key, correct the error by using the BACKSPACE key. If you mess up the whole program, rewrite it, by typing the word NEW and then starting from the beginning again. If you mess up a line, retype it underneath. For example, suppose you type ___ 1 PRIMT "I LOVE YOU" and then you notice that you misspelled the word PRINT. Just retype the line, so your screen looks like this: 1 PRIMT "I LOVE YOU" 1 PRINT "I LOVE YOU" For another example, suppose you type this tongue-twister ___ 1 PRINT "SHE SELLS" 2 PRINT "SEE SHELLS" 3 PRINT "BY THE SEASHORE" and then you notice that in line 2, the SEE ought to be SEA. Underneath the program, retype that line, so your screen looks like this: 1 PRINT "SHE SELLS" 2 PRINT "SEE SHELLS" 3 PRINT "BY THE SEASHORE" 2 PRINT "SEA SHELLS" When you type RUN, the computer will run the corrected version and print: SHE SELLS SEA SHELLS BY THE SEASHORE When you type LIST, the computer will list the corrected program; the computer will say: 1 PRINT "SHE SELLS" 2 PRINT "SEA SHELLS" 3 PRINT "BY THE SEASHORE" What if the computer gripes? If the computer ever gripes at you, don't worry: just correct your error. For example, suppose you type ___ 1 PRIMT "ROSES ARE RED" 2 PRINT "CABBAGE IS GREEN" 3 PRINT "MY FACE IS FUNNY" 4 PRINT "BUT YOURS IS A SCREAM" and you don't notice that you misspelled PRINT in line 1. If you type RUN, the computer will try to run the program but will be confused by line 1, so it will gripe at you. It will say: SYNTAX ERROR IN 1 That means the computer hasn't the faintest idea of what you're talking about in line 1. Your next step is to correct the error. To do that, just retype line 1 correctly, and then type the word RUN again. So altogether, the conversation looks like this. . . . You type this, but it's wrong:1 PRIMT "ROSES ARE RED" 2 PRINT "CABBAGE IS GREEN" 3 PRINT "MY FACE IS FUNNY" 4 PRINT "BUT YOURS IS A SCREAM" RUN The computer gripes at you:SYNTAX ERROR IN 1 You type this to correct error:1 PRINT "ROSES ARE RED" RUN The computer recites the poem:ROSES ARE RED CABBAGE IS GREEN MY FACE IS FUNNY BUT YOURS IS A SCREAM Common bloopers If you're like most beginners, you'll make these mistakes soon ___ if you haven't made them already! You type the letter O instead of zero, or type zero instead of the letter O. Your typing looks correct to you, but the computer gripes. You type a command (such as RUN) but forget to press the ENTER key afterwards. The computer keeps waiting for you to press it. Since you don't realize the computer's waiting for you, and since the computer isn't replying, you think the computer broke. You tell the computer to PRINT a message, but you forget to put the message in quotation marks. So the computer gripes or prints a zero instead. You start typing a new program but forget to type the word NEW. So when you type RUN, the computer runs a mishmash of the new program with the previous program and reprints some messages from the previous program. Rearranging your program You don't have to type your program in order. For example, suppose you type: 4 PRINT "TOES" 2 PRINT "TOAD" 3 PRINT "LICKS" 1 PRINT "MY" In its mind, the computer automatically rearranges the program, so the numbers are in increasing order, like this: 1 PRINT "MY" 2 PRINT "TOAD" 3 PRINT "LICKS" 4 PRINT "TOES" If you'd like to peek inside the computer's mind and see what program the computer's thinking of, type the word LIST, like this. . . . You type this program: 4 PRINT "TOES" 2 PRINT "TOAD" 3 PRINT "LICKS" 1 PRINT "MY" You type this command: LIST Computer types the program in increasing order:1 PRINT "MY" 2 PRINT "TOAD" 3 PRINT "LICKS" 4 PRINT "TOES" If you type RUN, the computer will print: MY TOAD LICKS TOES Whenever you're confused, type the word LIST. Then the computer will tell you what's in its mind; and what's in its mind might surprise you! Fancy example Type this example and see what happens: NEW 10 PRINT "MY" 90 PRINT "TRUCK" 32 PRINT "SNEEZE" 50 PRINT "TOE" 32 PRINT "NEED A" 70 80 PRINT "HAT" 80 20 PRINT "SORE FEET" In its mind, the computer rearranges the program to put the numbers in increasing order. The lowest number is 10, which prints ``MY''. Next comes line 20, which prints ``SORE FEET''. Next comes line 32. Since you typed line 32 twice, the computer assumes you didn't like the first version and want the second version instead, so line 32 prints ``NEED A''. Next comes line 40, which prints ``TOE''. Next comes line 70. Since line 70 is blank, the computer ignores it. Next comes line 80. Since you typed line 80 twice, the computer assumes you didn't like the first version and want the second version instead, which is blank. Since it's blank, the computer ignores it. So the computer ignores line 80 altogether! Finally comes line 90, which prints ``TRUCK''. If you type LIST, the computer will show you the result of all that reasoning. The computer will type: 10 PRINT "MY" 20 PRINT "SORE FEET" 32 PRINT "NEED A" 50 PRINT "TOE" 90 PRINT "TRUCK" If you type RUN, the computer will print: MY SORE FEET NEED A TOE TRUCK If you think about that example, you'll notice two things: To revise a line, just retype it. To erase line 80, just type ___ 80 with nothing else on the line. NEW versus RUN The word NEW erases your program from the computer's mind, to make way for a new one. But the word RUN does not erase the program. After the run, you can continue inserting, deleting, and revising lines. Numbering by tens If your first line is numbered 1, and your second line is numbered 2, you can't squeeze a line between them, since decimals aren't allowed. So expert programmers number their lines 10, 20, 30, 40, . . . instead of 1, 2, 3, . . . That way, if your first line is numbered 10 and your second line is numbered 20, and you want to insert an extra line between them, you can call it 15. If you later want to insert an extra line between 10 and 15, you can call it 12. If you want to insert another line between 10 and 12, you can call it 11. Ranges of lines If your program's too long to fit on your screen, tell the computer to list part of your program. For example, to list just line 30, type this: LIST 30 To list lines 30 through 80, type this: LIST 30-80 To list from line 30 to the end of your program, type this: LIST 30- To list from the beginning of your program up to line 80, type this: LIST -80 To delete lines 30 through 80, type this: DELETE 30-80 That works on most computers. Some computers are different; check the ``Versions of BASIC'' appendix. Arrow keys To correct a mistake in your program quickly, try using the arrow keys. Here's how. See the error Make sure the line you want to correct is on the screen. If it's not on the screen yet, put it onto the screen by using the word LIST or EDIT. For example, to put line 30 onto the screen, type ___ LIST 30 or type: EDIT 30 Move to the error On the keyboard, you'll see a key that shows an arrow pointing to the left; it's called the left-arrow key. You'll also see a key that shows an arrow pointing to the right; it's called the right-arrow key. You'll also see an up-arrow key and a down-arrow key. On the computer's screen, you'll see a little blinking rectangle, called the cursor. Move it to the part of the line you want to correct, by pressing the arrow keys. (To move the cursor to the left, press the left-arrow key; to move the cursor to the right, press the right-arrow key; to move the cursor up, press the up-arrow key; to move the cursor down, press the down-arrow key.) If you typed the word LIST, you must press the up-arrow key to move the cursor up to the line you want to correct. If you typed the word EDIT instead, you don't need to press the up-arrow key; the word EDIT puts the cursor on the correct line automatically. Correct the error When you've moved the cursor to the part of the line you want to correct, make your corrections. To delete a character, move the cursor to that character, then press the DELETE key. To replace a character, move the cursor to that character, then type the new character you want instead. To insert extra characters in the middle of the line, move the cursor where you want the extra characters to begin, press the INSERT key, then type the extra characters. When you've finished correcting the line, press the ENTER key, which tells the computer to take the corrections seriously. Final comments After pressing the ENTER key, if you want to move the cursor to the bottom of the screen, press the down-arrow key several times. That method of editing works on most computers. To find out how to edit easily on your computer, read the appendix. TRICKY PRINTING Printing can be tricky! Here are the tricks. . . . Semicolons Run this program: 10 PRINT "FAT"; 20 PRINT "HER" Line 10 makes the computer print FAT; and line 10 ends with a semicolon. The semicolon makes the computer print the next item on the same line; so the computer will print HER on the same line, like this: FATHER This command shows what happens to an evil king on a boat: PRINT "SIN";"KING" The computer will print SIN, and will print KING on the same line, like this: SINKING Blank lines Life consists sometimes of joy, sometimes of sorrow, and sometimes of a numb emptiness. To express those feelings, run this program: 10 PRINT "JOY" 20 PRINT 30 PRINT "SORROW" Line 10 makes the computer print JOY. Line 20 makes the computer print a blank empty line, underneath JOY. Altogether, the computer will print: JOY SORROW Indenting Suppose you want the computer to print this letter: DEAR JOAN, THANK YOU FOR THE BEAUTIFUL NECKTIE. JUST ONE PROBLEM-- I DON'T WEAR NECKTIES! LOVE, FRED-THE-HIPPIE This program prints it: 10 PRINT "DEAR JOAN," 20 PRINT " THANK YOU FOR THE BEAUTIFUL" 30 PRINT "NECKTIE. JUST ONE PROBLEM--" 40 PRINT "I DON'T WEAR NECKTIES!" 50 PRINT " LOVE," 60 PRINT " FRED-THE-HIPPIE" In the program, each line contains two quotation marks. To make the computer indent a line, put blank spaces after the first quotation mark. Spaces after numbers Try typing this command: PRINT -3;"IS MY FAVORITE NUMBER" Whenever the computer prints a number, it prints a blank space afterwards; so the computer will print a blank space after -3, like this: -3 IS MY FAVORITE NUMBER  space Spaces before numbers This command tells what to put in your coffee: PRINT 7;"DO";"NUTS" The computer prints 7 and DO and NUTS. Since 7 is a number, the computer prints a blank space after the 7. The computer prints another blank space before every number that's positive; so the computer prints another blank space before the 7, like this: 7 DONUTS   spaces Hey, if you're feeling cool, maybe this command expresses your feelings: PRINT "THE TEMPERATURE IS";4+25;"DEGREES" The computer prints THE TEMPERATURE IS, then 4+25 (which is 29), then DEGREES. Since 29 is a positive number, the computer prints a blank space before and after the 29: THE TEMPERATURE IS 29 DEGREES   spaces Use this command if you're even colder: PRINT "THE TEMPERATURE IS";4-25;"DEGREES" The computer prints THE TEMPERATURE IS, then 4-25 (which is -21), then DEGREES. Since -21 is a number, the computer prints a space after it; but since -21 is not positive, the computer does not print a space before it. The computer prints: THE TEMPERATURE IS-21 DEGREES   no space space Yuk! That looks ugly! It would look prettier if there were a space before the -21. To insert a space, put the space inside quotation marks: PRINT "THE TEMPERATURE IS ";4-25;"DEGREES"  inserted space, before the quotation mark Then the computer will print: THE TEMPERATURE IS -21 DEGREES  inserted space Multiple calculations By using semicolons, you can make the computer do many calculations at once. For example, this command makes the computer do 6+2, 6-2, 6*2, and 6/2, all at once: PRINT 6+2;6-2;6*2;6/2 That makes the computer print the four answers: 8 4 12 3 The computer prints spaces between the answers, because the computer prints a space after every number (and an additional space before every number that's positive). Clear the screen If you press the CLEAR key (which is on the Walter keyboard), the computer erases the entire screen, so that the screen becomes cleared, empty, blank. Though pressing the CLEAR key erases the screen, it does not erase the computer's memory. The computer still remembers what program you were working on. The only way to erase the computer's memory is to type the word NEW. So whenever you want to begin a new program, type the word NEW, which erases the previous program; pressing the CLEAR key is not sufficient. You can begin your program with this line: 10 CLS It makes the computer automatically CLear the Screen, before doing the rest of the program. For example, run this program: 10 CLS 20 PRINT "I'M SITTING ON TOP OF THE WORLD" Line 10 makes the computer CLear the Screen. Since the screen's been cleared, line 20 prints this message at the top of the screen: I'M SITTING ON TOP OF THE WORLD On older computers, the CLEAR key is missing and the CLS command doesn't work. To find out about your computer, see the ``Versions of BASIC'' appendix. Print on paper You've learned how to make the computer print messages, poems, and business letters on your screen. But if you want to mail those messages and letters to your friends, you face this problem: the post office refuses to mail your screen! And it's hard to stuff your screen into an envelope! So to mail the computer's wise words to your friends, you must tell the computer to print on paper instead of on the screen. To make the computer print on paper, attach the computer to a printer, which handles paper and looks like a typewriter without a keyboard. You can control the printer in four ways. The PRINT key The simplest way is to press the PRINT key, which is on the Walter keyboard. Pressing the PRINT key makes the printer dump onto paper a snapshot of everything that's on the screen. The snapshot on paper is called a screen dump. The ECHO key A fancier way to print on paper is to press the ECHO key, which is also on the Walter keyboard. Pressing the ECHO key turns your entire computer system into a gigantic typewriter. After you press the ECHO key, whatever you or the computer type onto the screen will also be echoed onto the paper. For example, if you press the ECHO key and then type the word LOVE, the word LOVE will appear on both the screen and the paper. The printer will continue to echo everything that's typed, until you tell the printer to stop echoing. To tell the printer to stop, just press the ECHO key again. The LPRINT command If you type LPRINT instead of PRINT, the computer will print on paper instead of on the screen. For example, to make the computer print I LOVE YOU on paper, type this: LPRINT "I LOVE YOU" The LLIST command To list your program on paper, instead of on the screen, type an extra L in front of the word LIST, like this: LLIST Differences Although modern computers include a PRINT key and an ECHO key and understand LPRINT and LLIST, older computers do not. To find out about your computer, read the ``Versions of BASIC'' appendix. GOING & STOPPING You can tell the computer to go and stop. GO TO This program makes the computer go wild: 10 PRINT "CAT" 20 PRINT "DOG" 30 GO TO 10 Line 10 makes the computer print CAT. Line 20 makes it print DOG. Line 30 makes it go back to line 10 again, so it prints CAT again. Then it prints DOG again, and comes to line 30 again, which makes it go back to line 10 again, print CAT and DOG again, and then jump back again. . . . The computer will print the words CAT and DOG again and again, like this: CAT DOG CAT DOG CAT DOG CAT DOG CAT DOG etc. The computer will try to print the words CAT and DOG again and again, forever. Try running that program; you'll have fun watching the computer go crazy. The computer will print the words CAT and DOG on every line of your screen; and even when all the lines of your screen have been used, the computer still doesn't stop: all the CATs and DOGs rise to the top of the screen and finally off the screen, to make way for new CATs and DOGs to appear at the bottom of the screen. You'll see a blur, as thousands of CATs and DOGs go flying up the screen. If you told the computer to use the printer (which prints on paper), you'll see reams of paper spewing out, saying CAT and DOG. Soon your whole room will be buried under piles of paper saying CAT and DOG thousands of times! To stop this madness, you must give the computer some kind of ``jolt'' that will put it out of its misery. And now we come to the controversial part of this book. To put the computer out of its misery, you must give an abortion. To give the abortion, press the BREAK key. That makes the computer stop running your program; it will abort your program and say OK. Then you can give any command, such as LIST. (The BREAK key is on the Walter keyboard. To find out about your computer's keyboard, check the ``Versions of BASIC'' appendix.) Here's a picture of that program: start 10 PRINT "CAT" 20 PRINT "DOG" 30 GO TO 10 The computer follows the arrows, which make it go round and round in a loop. Since the computer will try to go round and round the loop forever, the loop is called infinite. The only way to stop an infinite loop is to abort it. In that program, you typed just three lines; but since the third line said to GO TO the beginning, the computer does an infinite loop. By saying GO TO, you can make the computer do an infinite amount of work. Moral: the computer can turn a finite amount of human energy into an infinite amount of good. Putting it another way: the computer can multiply your abilities by infinity. Love Let's spread love throughout the world! Type this program, which makes the computer multiply your love: 10 PRINT "LOVE" 20 GO TO 10 Even though you typed the word LOVE just once, the computer will print it many times, like this: LOVE LOVE LOVE LOVE LOVE etc. The computer will print repeatedly, until you abort its love. For more lovely fun, put a semicolon after LOVE, like this: 10 PRINT "LOVE"; 20 GO TO 10 The semicolon makes the computer print LOVE next to LOVE: LOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVEL OVELOVELOVELOVE LOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVEL OVELOVELOVELOVE LOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVELOVEL OVELOVELOVELOVE etc. If you put a space after LOVE, like this ___ 10 PRINT "LOVE "; 20 GO TO 10 the computer will put a space after each LOVE: LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE LOVE etc. Instead of making the computer print LOVE, try making it print an ad (such as BUY JOE'S MEAT), or political slogan (such as STOP POLLUTION), or your name, or something else you feel emotional about. Like a dog, the computer imitates its master's personality. If your computer acts ``cold and heartless'', it's because you are! Smelly poetry Suppose you want to send this poem to all your friends: I'M HAVING TROUBLE WITH MY NOSE. THE ONLY THING IT DOES IS: BLOWS! Just run this program: 10 PRINT "I'M HAVING TROUBLE" 20 PRINT "WITH MY NOSE." 30 PRINT "THE ONLY THING IT DOES IS:" 40 PRINT "BLOWS!" 50 PRINT 60 GO TO 10 Lines 10-40 print the poem. Line 50 prints a blank line at the end of the poem. Line 60 makes the computer do all that repeatedly, so the computer will print: I'M HAVING TROUBLE WITH MY NOSE. THE ONLY THING IT DOES IS: BLOWS! I'M HAVING TROUBLE WITH MY NOSE. THE ONLY THING IT DOES IS: BLOWS! I'M HAVING TROUBLE WITH MY NOSE. THE ONLY THING IT DOES IS: BLOWS! etc. The computer will print infinitely many copies of the poem ___ unless you abort it. If you activate the computer's printer, the copies will be printed on paper, so you can mail them to your nosy friends. Life as an infinite loop A program that makes the computer do the same thing again and again forever is an infinite loop. Some humans act just like computers. Those humans do the same thing again and again. Every morning they GO TO work, and every evening they GO TO home. GO TO work, GO TO home, GO TO work, GO TO home, . . . Their lives are sheer drudgery. They're caught in an infinite loop. Go to your bathroom, get your bottle of shampoo, and look at the instructions on the back. A typical bottle has three instructions: Lather. Rinse. Repeat. Those instructions say to lather, then rinse, then repeat ___ which means to lather again, then rinse again, then repeat again ___ which means to lather again, then rinse again, then repeat again. . . . If you follow those instructions, you'll never finish washing your hair! The instructions are an infinite loop! The instructions are a program: they program you to use lots of shampoo! That's how infinite loops help sell shampoo. Infinite pause This program tortures the computer: 10 GO TO 10 Line 10 tells the computer to go to line 10, which tells the computer to go to line 10, which tells the computer to go to line 10. . . . The computer will do line 10 again and again, forever. So the computer will spend the rest of its life just mumbling to itself. That program has turned your beautiful computer into a bumbling, mumbling idiot. The ``10 GO TO 10'' is called an infinite pause, because it makes the computer pause from doing all useful work, forever. If you're mean enough to give your computer that program, please abort it! Otherwise, a member of the Association for Prevention of Cruelty to Computers will stick pins in your voodoo doll. To make the program even meaner, insert line 5, like this: 5 CLS 10 GO TO 10 Line 5 makes the computer CLear the Screen, so that the whole screen becomes blank. And line 10 renders the computer completely useless: the computer will ignore anything you type, since the computer is busy doing ``10 GO TO 10'' forever. Now you have a computer whose screen is permanently blank and that ignores anything you type on the keyboard! To get really mean, walk up to your best friend's computer, type that program, type the word RUN, and watch your friend suffer when the screen and keyboard both stop working! (And see how long your friend remains your ``friend''!) The only way your (ex-)friend can fix the computer is to give an abortion or turn off the power. (Remember: most computers understand CLS, but yours might not. To find out about your computer, check the ``Versions of BASIC'' appendix.) To elaborate on that program, add line 7, like this: 5 CLS 7 PRINT "I REFUSE TO WORK FOR YOU" 10 GO TO 10 When you RUN that program, the screen goes blank, then the computer says it refuses to work for you, and then line 10 does indeed make the computer refuse to work for you! The computer will refuse all your work ___ it'll just mumble to itself ___ until you give it an abortion. Now that I've turned you into a computer saboteur, the whole world will worry that you'll kidnap computers, hold them hostage, and threaten to turn them into ``10 GO TO 10'' idiots! You can even cause a moral dilemma for people who are against abortions and are even more against ``pulling the plug''. Is God against abortions for computers? How to skip ahead Did you ever dream about having a picnic in the woods? This program expresses that dream: 10 PRINT "LET'S MUNCH" 20 PRINT "SANDWICHES UNDER" 30 PRINT "THE TREES" It makes the computer print: LET'S MUNCH SANDWICHES UNDER THE TREES Let's turn that dream into a nightmare, in which we all become giant termites. To do that, insert the shaded line: 10 PRINT "LET'S MUNCH" 15 GO TO 30 20 PRINT "SANDWICHES UNDER" 30 PRINT "THE TREES" The computer does line 10, which prints LET'S MUNCH. Then it does line 15, which makes it skip ahead to line 30, which prints THE TREES. So altogether, the computer prints: LET'S MUNCH THE TREES In that program, line 15 made the computer skip ahead to line 30 and skip over line 20. END To make the computer skip the bottom part of your program, say END: 10 PRINT "SHE SMELLS" 20 END 30 PRINT "OF PERFUME" The computer will print SHE SMELLS and then end, without printing OF PERFUME. After the computer ends, it'll say OK. Then you can type any command, such as LIST (to see the program again) or RUN (to make the computer print SHE SMELLS again) or NEW (to create a new program). STOP Instead of saying END, you can say STOP, like this: 10 PRINT "SHE SMELLS" 20 STOP 30 PRINT "OF PERFUME" The computer will print SHE SMELLS and then stop, without printing OF PERFUME. When the computer encounters the word STOP, it prints a message telling you which line said STOP. For example, when the computer stops because line 20 said STOP, the computer prints ``STOPPED AT LINE 20'' or ``BREAK IN LINE 20'' or ``BREAK IN 20''. (The exact wording depends on which computer you bought.) So if you type ___ 10 PRINT "SHE SMELLS" 20 STOP 30 PRINT "OF PERFUME" and then type RUN, the computer will print something like this: SHE SMELLS BREAK IN 20 DISKS VERSUS TAPES While you're working with a program, the computer keeps the program in its random-access memory (RAM). In a typical microcomputer, the RAM handles just one program at a time. If you want the computer to remember several programs, you can put one program in the RAM but must put the remaining programs on a disk or tape instead. Save on disk Here's how to use a disk. (I'll explain tape later.) Before typing your program, make sure the computer and disk have both been properly prepared. To find out how to prepare your computer and disk, read the ``Versions of BASIC'' appendix. Then type your program. For example, try typing this program: NEW 10 PRINT "MY DAD" 20 PRINT "IS GLAD" Underneath the program, try typing this: SAVE "JOE" That makes the computer copy the program from the RAM to the disk, and name the program JOE. Copying from the RAM to the disk is called ``saving'' the program. SAVE ``JOE'' means: save the program and name it ``JOE''. Altogether, here's what you typed: NEW 10 PRINT "MY DAD" 20 PRINT "IS GLAD" SAVE "JOE" (On your computer, the procedure might be slightly different: check the ``Versions of BASIC'' appendix.) To make sure the computer copied the program onto the disk, type this word: FILES The computer will print the names of all the programs on the disk, and one of the names it will print is JOE. The program is now in two places: the program's original version is still in the RAM, and a copy of it is on the disk. The copy is called JOE. If you type NEW, you'll erase the RAM, and so the program won't be in the RAM anymore. But although the program's original version is no longer in the RAM, the copy (which is called JOE) remains on the disk. To prove JOE's still on the disk, type the word FILES again, which makes the computer say again that JOE's still on the disk. How to choose a name If you don't like the name JOE, choose a different name instead. For example, to create a program named SUE, type a program and then say: SAVE "SUE" The name of your program can be ``JOE'' or ``SUE'' or any other brief string of letters and digits. For example, it can be ``LOVER'' or ``POEM4U''. Pick a name that reminds you of the program's purpose. For example, if the program prints a bill to a customer, call the program ``BILL''; if the program plays chess, call the program ``CHESS''; if it gives a quiz, call it ``QUIZ''; if it tutors a human about the elements of sex, call it ``SEX''; if it tutors a human about advanced sex, call it ``SEX2''. Load from disk You've seen that the word SAVE makes the computer copy a program from the RAM to the disk. The opposite of the word SAVE is the word LOAD: it makes the computer copy a program from the disk to the RAM. For example, if you want the computer to copy JOE from the disk to the RAM, type this: LOAD "JOE" It tells the computer to load JOE into the RAM (from the disk). After typing that, the program's in the RAM again. To prove it's in the RAM, type the word LIST, so that the computer will LIST the program that's in the RAM; or type the word RUN, which makes the computer RUN the program that's in the RAM. So if JOE's on a disk, you can run it by first copying it to the RAM and then saying RUN, like this: LOAD "JOE" RUN Instead of typing that pair of lines, you can type this single line, which is a short-cut: RUN "JOE" That makes the computer automatically load JOE (from the disk to the RAM) and run it. Edit the disk Suppose you don't like the version of JOE that's on the disk. Here's how to revise JOE. First, copy JOE from the disk to the RAM, by saying: LOAD "JOE" Then examine the program, by typing: LIST Then revise the program, by retyping some of its lines or adding new ones. When you've finished revising the program's version that's in the RAM, copy the revisions from the RAM to disk, by saying again: SAVE "JOE" That command makes the computer copy the revised version of JOE onto the disk (and erases the previous version of JOE from the disk). If JOE's on the disk and you want to change its name to FRED, type this: RENAME "JOE" TO "FRED" Protect yourself Suppose you're creating a program named TOM, which is so long that it takes you several hours to type. You'll be upset if, after several hours of typing, your town suddenly has a blackout that makes the computer forget what you typed. To protect yourself against such a calamity, type SAVE ``TOM'' every fifteen minutes. Then if your town has a blackout, you'll lose just a few minutes of work; the rest of your work will have already been saved on a disk. Typing SAVE ``TOM'' every fifteen minutes protects you against blackouts and also against ``computer malfunction'' and any careless errors you might make. Each time you say SAVE ``TOM'', the computer puts a copy of the program onto the disk and saves that copy permanently ___ or at least until you type SAVE ``TOM'' again fifteen minutes later. Even if your RAM is erased (by a blackout or computer malfunction or your carelessness), TOM will still be on the disk. Space on the disk If you invent many programs and put them on the disk, the disk will someday become full. If you try to put more programs onto the disk than the disk can hold, the computer will gripe by printing a message such as: DISK FULL Someday, you'll decide you no longer have any use for JOE, and that JOE's just wasting space on your disk. To erase JOE from the disk, type this: KILL "JOE" Tapes If you can't afford a disk drive, try using cassette tapes instead, which serve the same purpose as disks but are cheaper and slower. (To find out whether your computer accepts cassette tapes, check the ``Versions of BASIC'' appendix.) Here's how to put a program onto a cassette tape. First, type the program. Then put a tape into the tape recorder; to do that, you might have to press the recorder's EJECT button. Rewind the tape, by pressing the recorder's REWIND button. When the tape is rewound, press the recorder's STOP button. If the recorder has a counter, press the counter's button, so the counter becomes zero. Press the recorder's FAST FORWARD button, until you get to a part of the tape that's blank and good. (The very beginning of the tape is bad. Wait until the counter gets to at least 10.) Then press the STOP button. If the recorder has a counter, notice the counter's number, and write it onto the tape's label, by using a pencil. To find out what to do next, read the ``Versions of BASIC'' appendix, which explains the peculiarities of your computer!